/**
 * 代码错误返回和记录
 * @author whyccup
 */
// 错误日志记录
const log = require('./log')

module.exports = {
  ERROR: ({
    status,
    err,
    error
  }, req, res) => {
    if (!err) {
      log.error(req.path, error, status)
    } else {
      log.error(req.path, err, status)
    }
    res.json({
      status,
      error
    })
  },
  ERRORData:  (err) => {
    return {
      // 服务器内部错误
      database_error: {
        status: 1000,
        err,
        error: '服务器内部错误'
      },
      // 参数
      param_incomplete: {
        status: 3001,
        err,
        error: '请求参数不完整'
      },
      param_error: {
        status: 3002,
        err,
        error: '请求参数错误'
      },
      param_type_error: {
        status: 3003,
        err,
        error: 'type参数只能传规定值'
      },
      param_base64_error: {
        status: 3004,
        err,
        error: 'base64字符串格式错误'
      },
      // 用户
      account_token_invalid: {
        status: 4001,
        err,
        error: '身份已失效,请重新登陆'
      },
      account_not_found: {
        status: 4002,
        err,
        error: '用户不存在'
      },
      account_create_fail: {
        status: 4003,
        err,
        error: '用户创建失败'
      },
      account_password_error: {
        status: 4004,
        err,
        error: '用户密码错误'
      },
      account_login_fail: {
        status: 4005,
        err,
        error: '用户登录失败'
      },
      account_update_fail: {
        status: 4006,
        err,
        error: '用户信息更新失败'
      },
      // 图片
      image_create_fail: {
        status: 5001,
        err,
        error: '图片创建失败'
      },
      // 店铺
      store_create_fail: {
        status: 6001,
        err,
        error: '店铺创建失败'
      },
      store_update_fail: {
        status: 6002,
        err,
        error: '店铺更新失败'
      },
      // 地理位置
      area_create_fail: {
        status: 7001,
        err,
        error: '地理位置创建失败'
      },
      area_update_fail: {
        status: 7002,
        err,
        error: '地理位置更新失败'
      },
      // 订单
      order_not_found: {
        status: 8001,
        err,
        error: '订单不存在'
      }
    }
  }
}